<?php
use Workerman\Worker;
/**
 * 客户端调用 DEMO
 */
/*
$socket = stream_socket_client("tcp://127.0.0.1:12345", $errno, $errmsg, 5);
if(!$socket) echo $errmsg;
$mail_data = array("from"=>"...", "to"=>"...", "content"=>"...");
// 注意，Text协议后面"\n"换行符是必须的
$mail_buffer = json_encode($mail_data)."\n";
fwrite($socket, $mail_buffer);
*/
// mail worker，和调用端使用Text协议通讯
$mail_worker = new Worker('Text://0.0.0.0:12345');
// 如果发送邮件很慢，mail进程数可以根据需要多开一些
$mail_worker->count = 10;
$mail_worker->name = 'asyncServ'; 
$mail_worker->onMessage = function($connection, $task_data)
{
     // 假设发来的是json数据
     $task_data = json_decode($task_data, true);
     // 根据task_data处理相应的任务逻辑.... 得到结果，这里省略....
     $task_result = array('msg'=>'ok');
     var_dump(send_mail_func());
     var_dump(send_mail_func2());
     // 发送结果
     $connection->send(json_encode(send_mail_func()));
};
if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}

function send_mail_func2(){
    sleep(3);
    return array('ok 2 send_mail_func!');
}
function send_mail_func(){
    sleep(1);
    return array('ok 1 send_mail_func!');
}